package com.leigq.dynamic.task.web;

import org.springframework.scheduling.support.CronTrigger;

/**
 * 动态任务接口
 * <br/>
 * 支持动态配置 cron表达式
 * @author leiguoqing
 */
public interface IDynamicTask {

    /**
     * 获取类别，区分不同的Bean对象
     *
     * @return string
     */
    String type();

    /**
     * 获取 run 方法
     *
     * @return task
     */
    Runnable getTask();

    /**
     * 获取触发器，一般是 CronTrigger
     *
     * @return trigger
     */
    CronTrigger getTrigger();

    /**
     * 接口 动态修改 定时任务的表达式
     *
     * @param cron the cron
     * @return the trigger
     */
    CronTrigger setTrigger(String cron);

}
